package com.itheima.Test;

public class Test001 {
    public static void main(String[] args) {
        /*
        请编写程序，不使用任何同步技术，模拟三个窗口同时卖100张票的情况，
        运行并打印结果，观察到错误的数据，并解释出现错误的原因。
         */
        Thread mt  = new Thread(new Runnable() {
            @Override
            public void run() {
                int a  = 100;
                while (true){
                    if(a<=0){
                        break;
                    }
                    System.out.println(Thread.currentThread().getName()+"售出了"+a+"号票");
                    a--;
                }
            }
        });
        mt.setName("窗口一");
        mt.start();
        Thread mt2  = new Thread(new Runnable() {
            @Override
            public void run() {
                int a  = 100;
                while (true){
                    if(a<=0){
                        break;
                    }
                    System.out.println(Thread.currentThread().getName()+"售出了"+a+"号票");
                    a--;
                }
            }
        });
        mt2.setName("窗口二");
        mt2.start();
        Thread mt3  = new Thread(new Runnable() {
            @Override
            public void run() {
                int a  = 100;
                while (true){
                    if(a<=0){
                        break;
                    }
                    System.out.println(Thread.currentThread().getName()+"售出了"+a+"号票");
                    a--;
                }
            }
        });
        mt3.setName("窗口三");
        mt3.start();
        //错误原因:三个线程使用同一个数据,会造成线程安全问题;
    }
}
